python应用Axes3D绘图(批量梯度下降算法) | 您所在的位置:网站首页 › python axes3d › python应用Axes3D绘图(批量梯度下降算法) |
更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.sfkyty.com/本文实例为大家分享了python批量梯度下降算法的具体代码,供大家参考,具体内容如下 问题: 将拥有两个自变量的二阶函数绘制到空间坐标系中,并通过批量梯度下降算法找到并绘制其极值点 大体思路: 首先,根据题意确定目标函数:f(w1,w2) = w1^2 + w2^2 + 2 w1 w2 + 500 然后,针对w1,w2分别求偏导,编写主方法求极值点 而后,创建三维坐标系绘制函数图像以及其极值点即可 具体代码实现以及成像结果如下: import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d.axes3d import Axes3D#f(w1,w2) = w1^2 + w2^2 + 2w1w2 + 500 def targetFunction(W): #目标函数 w1,w2 = W return w1 ** 2 + w2**2 + 2w1w2+500 def gradientFunction(W): #梯度函数:分别对w1,w2求偏导 w1,w2 = W w1_grad = 2w1+2w2 w2_grad = 2w2 + 2w1 return np.array([w1_grad,w2_grad]) def batch_gradient_distance(targetFunc,gradientFunc,init_W,learning_rate = 0.01,tolerance = 0.0000001): #核心算法 W = init_W target_value = targetFunc(W) counts = 0 #用于计算次数 while counts |
CopyRight 2018-2019 实验室设备网 版权所有 |